home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Language/OS - Multiplatform Resource Library
/
LANGUAGE OS.iso
/
gnu
/
mtools.lha
/
mtools-2.0.7
/
msdos.h
< prev
next >
Wrap
C/C++ Source or Header
|
1992-09-10
|
2KB
|
62 lines
/*
* msdos common header file
*/
#define MSECTOR_SIZE 512 /* MSDOS sector size in bytes */
#define MDIR_SIZE 32 /* MSDOS directory size in bytes */
#define MAX_CLUSTER 8192 /* largest cluster size */
#define MAX_PATH 128 /* largest MSDOS path length */
#define MAX_DIR_SECS 64 /* largest directory (in sectors) */
#define NEW 1
#define OLD 0
struct directory {
unsigned char name[8]; /* file name */
unsigned char ext[3]; /* file extension */
unsigned char attr; /* attribute byte */
unsigned char reserved[10]; /* ?? */
unsigned char time[2]; /* time stamp */
unsigned char date[2]; /* date stamp */
unsigned char start[2]; /* starting cluster number */
unsigned char size[4]; /* size of the file */
};
struct device {
char drive; /* the drive letter */
char *name; /* full path to device */
long offset; /* skip this many bytes */
int fat_bits; /* FAT encoding scheme */
int mode; /* any special open() flags */
int (*gioctl) (); /* gioctl() function if needed */
int tracks; /* tracks */
int heads; /* heads */
int sectors; /* sectors */
};
struct bootsector {
unsigned char jump[3]; /* Jump to boot code */
unsigned char banner[8]; /* OEM name & version */
unsigned char secsiz[2]; /* Bytes per sector hopefully 512 */
unsigned char clsiz; /* Cluster size in sectors */
unsigned char nrsvsect[2]; /* Number of reserved (boot) sectors */
unsigned char nfat; /* Number of FAT tables hopefully 2 */
unsigned char dirents[2]; /* Number of directory slots */
unsigned char psect[2]; /* Total sectors on disk */
unsigned char descr; /* Media descriptor=first byte of FAT */
unsigned char fatlen[2]; /* Sectors in FAT */
unsigned char nsect[2]; /* Sectors/track */
unsigned char nheads[2]; /* Heads */
unsigned char nhs[4]; /* number of hidden sectors */
unsigned char bigsect[4]; /* big total sectors */
unsigned char junk[476]; /* who cares? */
};
typedef void SIG_TYPE;
/* typedef int SIG_TYPE; */
#ifdef BSD
#define strchr index
#define strrchr rindex
#endif /* BSD */